home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / dskut / cachemon.zip / CACHEMON.DOC < prev    next >
Text File  |  1990-03-14  |  6KB  |  146 lines

  1. CACHEMON - Disk cache monitor
  2.  
  3. Copyright (c) 1990 D.J. Murdoch.  See the license notice below. 
  4.  
  5. Purpose
  6.  
  7. CACHEMON is a set of 3 programs to monitor disk activity.  I 
  8. wrote them to check up on a couple of disk cache programs that I 
  9. was testing.
  10.  
  11. Use
  12.  
  13. The basic method is to load a copy of CACHEMON, then your disk 
  14. caching software, then another copy of CACHEMON.  (Each takes at 
  15. most a few hundred bytes, so it doesn't cost you much memory to 
  16. load two.) How you load them depends on the type of disk cache. 
  17.  
  18. If a software cache is loaded as a device driver, then you can 
  19. load a copy of CACHEMON ahead of it by using the device driver 
  20. CACHEMON.BIN.  In your config.sys file, before the cache is 
  21. loaded, put a line like 
  22.  
  23.   DEVICE=CACHEMON.BIN [name]
  24.  
  25. The name is optional, and is only used to label this monitor in 
  26. reports.  
  27.  
  28. A good choice of name is something like "Physical", since this 
  29. monitor is loaded before the cache program, and it will see the 
  30. actual hardware read/write requests - the ones that couldn't be 
  31. satisfied from the cache. 
  32.  
  33. To see how many software read requests there were, you need to 
  34. load another copy sometime after the cache program.  This can 
  35. usually (but not necessarily) be just another line in CONFIG.SYS 
  36. after the line for the cache; however, you may find that a 
  37. monitor loaded that way sees only the hardware requests.  If so, 
  38. be sure to activate the cache, and then use the TSR CACHEMON.COM 
  39. method described below. 
  40.  
  41. If the software cache is loaded as a TSR (memory resident) 
  42. program from a batch file or the command line, then the second 
  43. monitor must be loaded as a TSR as well.  (The first monitor 
  44. could also be loaded as a TSR before the cache.)  To do this, 
  45. just run the command 
  46.  
  47.   CACHEMON [name]
  48.  
  49. from the batch file after the cache has been activated, or from 
  50. the command line.  CACHEMON will remain resident in memory until 
  51. you reboot or use a TSR controller (such as MARK/RELEASE, from 
  52. Turbopower) to remove it. 
  53.  
  54. At this point, you'll have two monitors in memory, but they'll be 
  55. slightly out of synchronization, because the first one will have 
  56. counted all the accesses that took place after it was loaded and 
  57. before the second one was loaded.  To synchronize them, run the 
  58. CACHEREP report program, with the reset option: 
  59.  
  60.   CACHEREP /R
  61.  
  62. and you should see a two line report of disk accesses.  After 
  63. printing the report, CACHEREP resets both monitors to 0, and 
  64. they'll continue from there. 
  65.  
  66. There's nothing to stop you from loading more monitors after the 
  67. first two (though the present version of CACHEREP can only report 
  68. on 10); if you use a multitasker like Desqview, you might want to 
  69. load the first two before DV, and then more as TSRs within each 
  70. window.  The first two will be visible from all windows and will 
  71. count all disk requests, while the rest will only be visible from 
  72. the window where they were loaded, and will only monitor disk 
  73. requests coming from that window. 
  74.  
  75. At any time after loading the monitors, you can print a report by 
  76. running CACHEREP with or without the reset option.  It tries to 
  77. identify the last monitor as the one with the highest read count, 
  78. and expresses all other counts relative to this monitor in the 
  79. "percent" columns. 
  80.  
  81. Limitations and bugs
  82.  
  83. To detect how many disk read/write requests are not being 
  84. satisfied from a cache, you must load a copy of CACHEMON before 
  85. the cache program.  This means if you're trying to evaluate a 
  86. hardware cache, there's no way CACHEMON can help.  
  87.  
  88. To detect how many read requests have been made, you need a copy 
  89. between the requestor and the cache program.  This means CACHEMON 
  90. is no use if you're trying to evaluate how DOS buffers affect 
  91. disk access, since it hooks into the BIOS disk accesses, after 
  92. any effect of BUFFERS has taken place.  
  93.  
  94. As presently coded, only access to the first hard disk (BIOS 
  95. device number 80h) are monitored.  However, as you'll see in the 
  96. source code, there's a byte called "my_id" which determines the 
  97. disk number; change it if you like, or modify CACHEREP to make 
  98. the change dynamically. 
  99.  
  100. The device driver version creates a character device called 
  101. CACHE$$$. This effectively blocks access to files and previously 
  102. loaded device drivers with the same name.  You can change the 
  103. name as you like; it isn't used when the program is running.  If 
  104. you do happen to try to access this device, you'll get a "device 
  105. not ready" critical error; abort the attempt and no damage should 
  106. have been done. 
  107.  
  108. Source Code 
  109.  
  110. Complete source code for all three programs should be included in 
  111. this package, along with the makefile I used to compile/assemble 
  112. them.  The two monitors are written in A86 assembler, with source 
  113. code in the files DEV_HEAD.A86, MONITOR.A86 and DEV_TAIL.A86 (for 
  114. CACHEMON.BIN), and MONITOR.A86 and TSR_TAIL.A86 for CACHEMON.COM.   
  115. The reporting program is written in Turbo Pascal 5.5, and uses 
  116. the Turbopower Object Professional library for Boyer-Moore search 
  117. and pointer manipulation routines.  Subject to the license below, 
  118. you're free to do as you like with the code. 
  119.  
  120. License
  121.  
  122. You may use this program and the source code for any non-
  123. commercial purpose at no charge.  Commercial users must obtain a 
  124. license at a cost of $25 Canadian per user, from me at the 
  125. address below.
  126.  
  127. Warning
  128.  
  129. While I tried to be sure these programs wouldn't cause any 
  130. problems, the variety of hardware and software in the PC world 
  131. these days almost guarantees that they won't work for someone.  
  132. Therefore, I can't give any guarantees or accept any liability 
  133. for damage that they may cause.  I would appreciate reports of 
  134. any bugs that people find. 
  135.  
  136.  Duncan Murdoch
  137.  Department of Statistics and Actuarial Science
  138.  University of Waterloo
  139.  Waterloo, Ontario, Canada N2L 3G1
  140.  (519)-888-4731
  141.  
  142.  Internet:   dmurdoch@watstat.waterloo.edu
  143.  Fidonet:    DJ Murdoch at 1:221/180.4
  144.  Compuserve: 71631,122 
  145.  
  146.